草庐IT

MySQL InnoDB 锁的二三事

全部标签

拦截器一二三

1.实现拦截器1.写一个拦截器继承HandlerInterceptorpreHandle:调用时间:Controller方法处理之前【也就是路径跳转之前】;执行顺序:链式Intercepter情况下,Intercepter按照声明的顺序一个接一个执行;返回值:返回值为true,则继续执行,false中断执行,生成时默认false;应用场景:登陆验证之类的postHandle:调用前提:preHandle返回true;调用时间:Controller方法处理完之后,DispatcherServlet进行视图的渲染之前,也就是说在这个方法中你可以对ModelAndView进行操作执行顺序:链式Int

拦截器一二三

1.实现拦截器1.写一个拦截器继承HandlerInterceptorpreHandle:调用时间:Controller方法处理之前【也就是路径跳转之前】;执行顺序:链式Intercepter情况下,Intercepter按照声明的顺序一个接一个执行;返回值:返回值为true,则继续执行,false中断执行,生成时默认false;应用场景:登陆验证之类的postHandle:调用前提:preHandle返回true;调用时间:Controller方法处理完之后,DispatcherServlet进行视图的渲染之前,也就是说在这个方法中你可以对ModelAndView进行操作执行顺序:链式Int

Java锁的逻辑(结合对象头和ObjectMonitor)

我们都知道在Java编程中多线程的同步使用synchronized关键字来标识,那么这个关键字在JVM底层到底是如何实现的呢。我们先来思考一下如果我们自己实现的一个锁该怎么做呢:首先肯定要有个标记记录对象是否已经上锁,执行同步代码之前判断这个标志,如果对象已经上锁线程就阻塞等待锁的释放。其次要有一个结构体来维护这些等待中的线程,锁释放后来遍历这些线程让他们去抢锁。第一点Java使用对象头来维护对象的上锁状态,第二点Java使用ObjectMonitor来维护等待中的线程及持有锁的线程****。对象头对象头中记录了锁的状态,Java中现在有三种锁状态偏向锁、轻量级锁、重量级锁。其中重量级锁就是用

Java锁的逻辑(结合对象头和ObjectMonitor)

我们都知道在Java编程中多线程的同步使用synchronized关键字来标识,那么这个关键字在JVM底层到底是如何实现的呢。我们先来思考一下如果我们自己实现的一个锁该怎么做呢:首先肯定要有个标记记录对象是否已经上锁,执行同步代码之前判断这个标志,如果对象已经上锁线程就阻塞等待锁的释放。其次要有一个结构体来维护这些等待中的线程,锁释放后来遍历这些线程让他们去抢锁。第一点Java使用对象头来维护对象的上锁状态,第二点Java使用ObjectMonitor来维护等待中的线程及持有锁的线程****。对象头对象头中记录了锁的状态,Java中现在有三种锁状态偏向锁、轻量级锁、重量级锁。其中重量级锁就是用

MyBatis(二三):动态SQL之Foreach

前面我们已经学习了动态SQL的if、where、set、choose(when,otherwise),今天我们来学习剩下的foreach。什么时候用到foreach呢?比如说我们要查询一个表中id为1,3,4的数据,我们应该写SQL语句为:select*fromTABLEwhere(id=1orid=3orid=4)这时候我们就可以把需要查的这些id的数据存放到一个集合中,通过遍历这个集合来查询到这些数据,这种时候我们就用到foreach了。 下面我们来看foreach的具体使用。还是先在BlogMapper接口中声明一个方法:ListQueryBlogsByForeach(Mapmap);然

MyBatis(二三):动态SQL之Foreach

前面我们已经学习了动态SQL的if、where、set、choose(when,otherwise),今天我们来学习剩下的foreach。什么时候用到foreach呢?比如说我们要查询一个表中id为1,3,4的数据,我们应该写SQL语句为:select*fromTABLEwhere(id=1orid=3orid=4)这时候我们就可以把需要查的这些id的数据存放到一个集合中,通过遍历这个集合来查询到这些数据,这种时候我们就用到foreach了。 下面我们来看foreach的具体使用。还是先在BlogMapper接口中声明一个方法:ListQueryBlogsByForeach(Mapmap);然

MySQL查看锁的sql

MySQL查看锁的sql查看数据库状态#会显示加锁的信息等等showengineinnodbstatus;查看正在执行的线程信息showfullprocesslist;查看正在锁的表showopentableswherein_use>0;showopentables;查看锁的类型、状态showstatuslike'%lock%';5.0后,增加了3个关于锁的表MySQL5.7版本INFORMATION_SCHEMA.innodb_trx当前运行的所有事务INFORMATION_SCHEMA.innodb_locks当前出现的锁INFORMATION_SCHEMA.innodb_lock_wai

MySQL查看锁的sql

MySQL查看锁的sql查看数据库状态#会显示加锁的信息等等showengineinnodbstatus;查看正在执行的线程信息showfullprocesslist;查看正在锁的表showopentableswherein_use>0;showopentables;查看锁的类型、状态showstatuslike'%lock%';5.0后,增加了3个关于锁的表MySQL5.7版本INFORMATION_SCHEMA.innodb_trx当前运行的所有事务INFORMATION_SCHEMA.innodb_locks当前出现的锁INFORMATION_SCHEMA.innodb_lock_wai

Java发起GET请求的二三事

一、拼接url首先我们需要知道的是,url是要符合一定格式的,比如我们就不能在url中写“$”、“#”、中文、空格等。所以,我们这里采用application/x-www-form-urlencoded格式对请求参数进行编码,可参考如下代码:/***构造完整请求url(带参数)*@paramurl请求url,形如:http://192.168.1.19*@paramparams请求参数,key是参数名,value是参数值*@return构造好的url,形如:http://192.168.1.19?name=mark&base=jinan*/publicstaticStringbuildUrl(

Java发起GET请求的二三事

一、拼接url首先我们需要知道的是,url是要符合一定格式的,比如我们就不能在url中写“$”、“#”、中文、空格等。所以,我们这里采用application/x-www-form-urlencoded格式对请求参数进行编码,可参考如下代码:/***构造完整请求url(带参数)*@paramurl请求url,形如:http://192.168.1.19*@paramparams请求参数,key是参数名,value是参数值*@return构造好的url,形如:http://192.168.1.19?name=mark&base=jinan*/publicstaticStringbuildUrl(